Primitivas

void cdPixel(int x, int y, long int color); [em C]
void wdPixel(double x, double y, long int color); (WC) [em C]
cdPixel(x, y: number, color: color_tag) [em Lua]
wdPixel(x, y: number, color: color_tag)
(WC) [em Lua]

Configura o pixel (x,y) com a cor definida por color.

void cdMark(int x, int y); [em C]
void wdMark(double x, double y); (WC) [em C]
cdMark(x, y: number) [em Lua]
wdMark(x, y: number)
(WC) [em Lua]

Desenha uma marca em (x,y) utilizando a cor de frente corrente. Não é possível utilizar esta função entre uma chamada às funções cdBegin e cdEnd se o tipo de marca for configurado para CD_DIAMOND. Se o driver ativo não possue essa primitiva, ela é simulada usando outras primitivas da biblioteca, tais como cdLine.

Se você vai chamar a função cdMark ou wdMark repetidas vezes em seqüência, então recomenda-se que a aplicação modifique os atributos de preenchimento e de linha para os utilizados pela função cdMark:

cdInteriorStyle(CD_SOLID);
cdLineStyle(CD_CONTINUOUS);
cdLineWidth(1);

Isto aumentará muito o desenpenho dessa função. Também neste caso se a marca for muito pequena, sugerimos usar a função cdPixel para que a própria aplicação desenhe a marca, em muitos casos isso pode aumentar o desempenho dessa função.

void cdLine(int x1, int y1, int x2, int y2); [em C]
void wdLine(double x1, double y1, double x2, double y2); (WC) [em C]
cdLine(x1, y1, x2, y2: number) [em Lua]
wdLine(x1, y1, x2, y2: number)
(WC) [em Lua]

Desenha uma linha de (x1,y1) até (x2,y2), utilizando a cor de frente, a espessura e o estilo de linha correntes. Ambos os pontos são incluidos na linha.

void cdBegin(int mode); [em C]
cdBegin(mode: number) [em Lua]

Começa a definição de um polígono a ser desenhado (ou preenchido) de acordo com o modo:  CD_CLOSED_LINES, CD_OPEN_LINES, CD_FILL ou CD_CLIP. O modo CD_CLOSED_LINES conecta o último ponto ao primeiro. O modo CD_FILL conecta o último ponto ao primeiro e preenche o polígono resultante de acordo com o estilo interior corrente; os outros dois estilos dependem dos atributos de largura e estilo de linha. Não crie polígonos embutidos, isto é, não chame a função cdBegin duas vezes sem uma chamada a cdEnd no meio. Ao invés de criar um polígono a ser desenhado, CD_CLIP cria um polígono para definir uma região de clipping não retangular. Isto funciona apenas em alguns sistemas que possuem este recurso incorporado. Quando o estilo de interior CD_HOLLOW está definido e o modo é CD_FILL, então a função se comporta como se o modo fosse CD_CLOSED_LINES.

void cdVertex(int x, int y); [em C]
void wdVertex(double x, double y); (WC) [em C]
cdVertex(x, y: number) [em Lua]
wdVertex(x, y: number)
(WC) [em Lua]

Acrescenta um vértice à definição do polígono.

void cdEnd(void); [em C]
cdEnd() [em Lua]

Finaliza a definição do polígono e o desenha (ou preenche).

void cdRect(int xmin, int xmax, int ymin, int ymax); [em C]
void wdRect(double xmin, double xmax, double ymin, double ymax); (WC) [em C]
cdRect(xmin, xmax, ymin, ymax: number) [em Lua]
wdRect(xmin, xmax, ymin, ymax: number)
(WC) [em Lua]

Desenha um retângulo sem preenchimento. Todos os pontos nos limites do intervalo x_min<=x<=x_max, y_min<=y<=y_max serão pintados. ë afetado pelos atributos de linha e pela cor de frente. Se o driver ativo não possue essa primitiva, ela é simulada usando a primitiva  cdLine.

void cdBox(int xmin, int xmax, int ymin, int ymax); [em C]
void wdBox(double xmin, double xmax, double ymin, double ymax);
(WC) [em C]
cdBox(xmin, xmax, ymin, ymax: number) [em Lua]
wdBox(xmin, xmax, ymin, ymax: number)
(WC) [em Lua]

Preenche um retângulo de acordo com o estilo interior corrente. Todos os pontos no intervalo x_min<=x<=x_max, y_min<=y<=y_max serão pintados. Quando o estilo de interior CD_HOLLOW está definido a função se comporta como a sua equivalente cdRect.

void cdArc(int xc, int yc, int w, int h, double angle1, double angle2); [em C]
void wdArc(double xc, double yc, double w, double h, double angle1, double angle2); (WC) [em C]
cdArc(xc, yc, w, h, angle1, angle2: number) [em Lua]
wdArc(xc, yc, w, h, angle1, angle2: number)
(WC) [em Lua]

Desenha um arco de uma elipse alinhado com o eixo utilizando a cor de frente, a espessura e o estilo de linha correntes. O par de coordenadas (xc,yc) é o centro da elipse. As dimensões w e h são os eixos elípticos X e Y, respectivamente. Os ângulos angle1 e angle2 definem o início e o fim do arco. O arco começa no ponto (xc+(w/2)*cos(angle1),yc+(h/2)*sin(angle1)) e termina em (xc+(w/2)*cos(angle2),yc+(h/2)*sin(angle2)).  Para especificar o ângulo em radianos pode-se usar a definição CD_RAD2DEG multiplicando o valor emn radianos antes de passar o angulo para o CD.

void cdSector(int xc, int yc, int w, int h, double angle1, double angle2); [em C]
void wdSector(double xc, double yc, double w, double h, double angle1, double angle2); (WC) [em C]
cdSector(xc, yc, w, h, angle1, angle2: number) [em Lua]
wdSector(xc, yc, w, h, angle1, angle2: number)
(WC) [em Lua]

Preenche um arco de uma elipse alinhado com o eixo de acordo com o estilo interior corrente. A coordenada (xc,yc) é o centro da elipse. As dimensões w e h são os eixos elípticos X e Y, respectivamente. Os ângulos angle1 e angle2 definem o início e o fim do arco. O arco começa no ponto (xc+(w/2)*cos(angle1),yc+(h/2)*sin(angle1)) e termina em (xc+(w/2)*cos(angle2),yc+(h/2)*sin(angle2)). Os ângulos são dados em graus. Quando o estilo de interior CD_HOLLOW está definido a função se comporta como a sua equivalente cdArc.  Para especificar o ângulo em radianos pode-se usar a definição CD_RAD2DEG multiplicando o valor emn radianos antes de passar o angulo para o CD.

void cdText(int x, int y, char *text); [em C]
void wdText(double x, double y, char *s); (WC) [em C]
cdText(x, y: number, text: string) [em Lua]
wdText(x, y: number, text: string)
(WC) [em Lua]

Põe um texto em (x,y) de acordo com a opacidade de fundo, a fonte e o alinhamento de texto correntes. Ignora caracteres "\n" para criar múltiplas linhas. Em todos os casos as funções de desenho da texto esperam uma string no padrão ANSI (Windows, MAC e UNIX), string com códigos ASCII acima de 128 aparecerão com caracteres errados.


Texto Vetorial

void cdVectorText(int x, int y, const char *text); [em C]
void wdVectorText(double x, double y, char * s); (WC) [em C]
cdVectorText(x, y: number, text: string) [em Lua]
wdVectorText(x, y: number, text: string)
(WC) [em Lua]

Desenha um texto vetorial na posição (x,y). Respeita o alinhamento definido por cdTextAlignment. Ignora a configuração cdBackOpacity, sendo sempre transparente. Ignora strings com múltiplas linhas. É INDISPENSÁVEL chamar cdVectorTextSize ou cdVectorCharSize antes de utilizar cdVectorText ou cdMultiLineVetorText.

void cdMultiLineVectorText(int x, int y, const char *text); [em C]
void wdMultiLineVectorText(double x, double y, char * s); (WC) [em C]
cdMultiLineVectorText(x, y: number, text: string) [em Lua]
wdMultiLineVectorText(x, y: number, text: string)
(WC) [em Lua]

Desenha um texto vetorial com várias linhas na posição (x,y). Respeita o alinhamento definido por cdTextAlignment. Ignora a configuração cdBackOpacity, sendo sempre transparente. As linhas são quebradas por caracteres "\n". Cada linha respeita a escala definida em cdVectorTextSize ou cdVectorCharSize. Esta função existe com o propósito único de fazer com que a função cdVectorText possa ser mais eficiente, não se preocupando com múltiplas linhas.